package org.geektimes.projects.user.oauth2;

/**
* open authentication 过滤器  
* @author : KangNing Hu
*/
public interface OAuth2Configuration {


	/**
	 * 获取来源名称
	 * @return
	 */
	String getOriginName();

	/**
	 * 获取授权url
	 * @return
	 */
	String getAuthorizeUrl();

	/**
	 * 获取 获取token的url
	 * @return
	 */
	String getAccessTokenUrl();

	/**
	 * 获取 获取jwt密钥url
	 * @return
	 */
	String getJwksUrl();

	/**
	 * 获取客户端id
	 * @return
	 */
	String getClientId();

	/**
	 * 获取客户端密钥
	 * @return
	 */
	String getClientSecret();

	/**
	 * 获取认证成功回调地址
	 * @return
	 */
	String getCallSucceedUrl();

	/**
	 * 获取认证失败回调地址
	 * @return
	 */
	String getCallFailureUrl();

	/**
	 * 获取授权码
	 * @return
	 */
	String getScope();




	/**
	 * 获取参数配置
	 * @return
	 */
	DefaultOAuth2Configuration.ParamConfiguration getParamConfiguration();


	/**
	 * 返回授权码
	 * @return
	 */
	default String getAuthCode(){
		return "";
	}


}
